<?php

/** 
 * @Author: 李红雨 - RainLee <rainlee1990@yeah.net>
 * @Date: 2022-06-21 13:49:04
 * @LastEditors: 李红雨 - RainLee <rainlee1990@yeah.net>
 * @LastEditTime: 2022-06-21 14:26:43
 * @Description: File Description
 */

return [
    'default' => 'api',
    'app_key' => env('app.app_key'),
    'guards' => [
        'admin' => [
            'driver'     => 'jwt',
            'jwt'        => 'api',
            'provider'   => 'user',
            'node_drive' => [ // 无需登录认证的节点
                'check_all'  => true,
                // check_all 为 true 时 check_node 列表为不需要登录认证的节点
                // check_all 为 false 时 check_node 列表为需要登录认证的节点
                'check_node' => [
                    'GET|POST:auth/login'
                ]
            ]
        ],
        'web' => [
            'driver'     => 'session',
            'provider'   => 'admin',
            'node_drive' => [ // 无需登录认证的节点
                'check_all'  => false,
                // check_all 为 true 时 check_node 列表为不需要登录认证的节点
                // check_all 为 false 时 check_node 列表为需要登录认证的节点
                'check_node' => [
                    'GET:member/info'
                ]
            ]
        ]
    ],

    'providers' => [
        'user' => [
            'driver' => 'model',
            'model' => app\admin\model\SysAdmin::class,
        ],
        'admin' => [
            'driver'        => 'database',
            'table'         => 'user',
            'connection'    => 'mysql', // database配置文件数据库链接名忽略为默认数据库链接
            'validate_pass' => 'md5' // 密码验证方式，默认password_verify
        ]
    ],

    'jwts' => [
        'api' => [
            'signer_key'   => env('app.app_key'), // 密钥
            'effective_at' => 0, // 生成后多久生效，默认生成后直接使用
            'expires_at'   => 7200, // Token有效期（秒
            'refresh_ttL'  => 7200, // 刷新时间
            'signer'       => 'Lcobucci\JWT\Signer\Hmac\Sha256', // 加密算法
            'token_mode'   => ['header', 'cookie', 'param'], // 获取 Token 方式，数组靠前值优先
            'iss'          => '',
            'aud'          => '',
            'payload'      => ['id', 'username'] // jwt荷载(Payload)部分存入的数据字段名
        ]
    ]
];
